#ifndef AC_COMMON_ERROR_HPP_
#define AC_COMMON_ERROR_HPP_

struct ErrorInfo;

struct Error
{
    const char* mesg;
    const ErrorInfo* err;

    Error()
        : mesg(0), err(0)
    {
    }

    Error(const Error&);
    Error& operator = (const Error&);
    ~Error();

    bool is_a(const ErrorInfo* e) const;
};

struct ErrorInfo
{
    const ErrorInfo* isa;
    const char* mesg;
    unsigned int num_parms;
    const char* parms[3];
};

#endif  // AC_COMMON_ERROR_HPP_
